为什么可以';我们在typescript中的类中使用var或let关键字定义变量,如下所示:
Typescript可转换为Javascript。在JS中也不能这样做,es5和es6中都不能 这是ts类传输到的内容(es5目标)为什么可以';我们在typescript中的类中使用var或let关键字定义变量,如下所示:,typescript,Typescript,Typescript可转换为Javascript。在JS中也不能这样做,es5和es6中都不能 这是ts类传输到的内容(es5目标) 知道了。谢谢。因此,我们只需要给出变量的签名,即field\u name:type或field\u name:type=value。我说的对吗?@PrathamPrat这就是typescript和javascript的区别,typescript是强类型的,你必须为你声明的每个属性提供一个类型。顺便说一句,您提到的错误不是由类型声明引起的。这是因为您不能在类级别用l
知道了。谢谢。因此,我们只需要给出变量的签名,即field\u name:type或field\u name:type=value。我说的对吗?@PrathamPrat这就是typescript和javascript的区别,typescript是强类型的,你必须为你声明的每个属性提供一个类型。顺便说一句,您提到的错误不是由类型声明引起的。这是因为您不能在类级别用
let或var
声明属性。它不是变量,而是类属性。谢谢您的帮助。我现在很清楚了。祝你过得愉快。注意扩展Daniel的解释,我们不能在JS中执行var this.field='test'
,因此我们不能在typescriptwhy中执行var field:string='test'
?老实说,唯一的答案是因为语言就是这样。这就像问为什么我必须使用+符号来添加数字。如果你的问题更像是一个好奇的问题,那就是为什么语言决定这么做。答案是,这是一种经典的方式,学生们用多种语言写作。C#和Java可能会产生很大的影响
class area {
var length;
let width;
length:number; // why do i need to do like this only;
width: number; // why do i need to do like this only;
...
...
}
class Test {
field: string = 'test';
}
// becomes:
var Test = /** @class */ (function () {
function Test() {
this.field = 'test';
}
return Test;
}());