对修饰器的实验支持功能在将来的版本中可能更改。在 "tsconfig" 或 "jsconfig" 中设置 "experimentaldecorators" 选项以删除此警告。
时间: 2023-04-14 19:01:43 浏览: 48
这句话的意思是,修饰器的实验支持功能在将来的版本中可能会有所更改。为了避免出现警告,可以在 "tsconfig" 或 "jsconfig" 文件中设置 "experimentaldecorators" 选项来删除警告。
相关问题
{ "resource": "/E:/微信/myapplet-spring/custom-tab-bar/index.js", "owner": "typescript", "code": "1219", "severity": 8, "message": "对修饰器的实验支持功能在将来的版本中可能更改。在 \"tsconfig\" 或 \"jsconfig\" 中设置 \"experimentalDecorators\" 选项以删除此警告。", "source": "ts", "startLineNumber": 3, "startColumn": 1, "endLineNumber": 3, "endColumn": 30 }
这段代码是一个 TypeScript 文件的编译警告。警告信息显示了修饰器的实验支持功能可能在将来的版本中发生更改。要消除此警告,你可以在你的 tsconfig.json 或 jsconfig.json 文件中设置 "experimentalDecorators" 选项为 true。这将允许你在代码中使用修饰器特性而不会收到警告。
解释在TypeScript中的装饰器?如何启用对装饰器的实验支持?
在 TypeScript 中,装饰器是一种特殊的声明,它可以被附加到类声明、方法、属性或参数上,以修改类的行为。装饰器本身是一个函数,它接收三个参数:
1. 对于类声明来说,是类的构造函数;对于方法、属性和参数来说,是它们所在的类的原型对象。
2. 对于方法和属性来说,是成员的名字;对于参数来说,是参数的索引。
3. 装饰器的返回值会被忽略,因此可以是任何值,甚至是 undefined。
下面是一个使用装饰器修饰类的例子:
```typescript
function classDecorator<T extends {new(...args:any[]):{}}>(constructor:T) {
return class extends constructor {
newProperty = "new property";
hello = "override";
}
}
@classDecorator
class Greeter {
property = "property";
hello: string;
constructor(m: string) {
this.hello = m;
}
}
console.log(new Greeter("world").hello);
```
在上面的例子中,`classDecorator` 是一个装饰器函数,它将传入的类进行了修饰,添加了一个新的属性和一个新的值。`@classDecorator` 是将装饰器应用到类声明上的语法。
要启用对装饰器的实验支持,需要在 TypeScript 的编译选项中加入 `--experimentalDecorators` 参数。可以在命令行中使用 `tsc --experimentalDecorators file.ts` 编译单个文件,或者在 `tsconfig.json` 文件中设置 `"experimentalDecorators": true` 来启用所有文件的实验支持。