Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么可以';我们在typescript中的类中使用var或let关键字定义变量,如下所示:_Typescript - Fatal编程技术网

为什么可以';我们在typescript中的类中使用var或let关键字定义变量,如下所示:

为什么可以';我们在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

Typescript可转换为Javascript。在JS中也不能这样做,es5和es6中都不能

这是ts类传输到的内容(es5目标)


知道了。谢谢。因此,我们只需要给出变量的签名,即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;
}());