打字稿中每种类型的默认值

时间:2017-06-09 02:37:24

标签: typescript

在哪里可以找到打字稿中每种类型的默认值?例如,在哪里提到number类型的默认值为null0.?或者关于string

默认值表示已定义但未分配的变量的值。像let a : number;一样。这在对象定义中发生了很多。例如:

 class A{
     let a: number;
     let b: string;
 }
 let obj: A;

因此,问题是关于a的{​​{1}}和b的值。

2 个答案:

答案 0 :(得分:4)

每种类型的默认值为undefined

来自:MDN - 'undefined'

  

尚未赋值的变量是undefined类型。

例如,即使greeting的类型为String

,调用以下内容也会提醒值' undefined'
let greeting: string;
alert(greeting);

答案 1 :(得分:2)

你必须记住,Typescript转换为javascript。在Javascript中,未分配变量的默认值为undefined,定义为here

例如,以下打字稿代码:

let a: string; console.log(a);

将转换为以下javascript并记录undefined

var a; console.log(a);

当您将参数传递给类的函数或构造函数时,这也适用:

// Typescript
function printStr(str: string) {
    console.log(str);
}

class StrPrinter {
    str: string;
    constructor(str: string) {
        this.str = str;
        console.log(this.str);
    }
}

printStr();
let strPrinter = StrPrinter();

在上面的代码示例中,typescript会抱怨函数和类构造函数缺少一个参数。尽管如此,它仍然可以转变为:

function printStr(str) {
    console.log(str);
}
var StrPrinter = (function () {
    function StrPrinter(str) {
        this.str = str;
        console.log(this.str);
    }
    return StrPrinter;
}());
printStr();
var strPrinter = StrPrinter();

您可能还想看看打字稿如何转换为javascript here