2 个回答

其实这么写并不规范。正常调用一个类的构造函数应该加上 new

let person = {
  id: 0,
  name: 'Adam',
  jobs: new Array(), // ok
  degrees: []        // ok
}

JS 内置的一些类型做了特殊处理,你不加 new 它也不会报错。

然后加上 TS 泛型标记:

let person = {
  jobs: new Array<String>(), // ok
  degrees: [] as String[]    // ok
}

String 是字符串对象,string 是基本字符串值。二者有何区别请看下面我贴的第二个文档 “基本字符串和字符串对象的区别” 一小节。

REF: https://developer.mozilla.org...
REF: https://developer.mozilla.org...

Array<T>T[] 等价,都是声明数组类型,推荐后者。

string 是 TypeScript 中的基本类型,但 String 是个类类型。

image.png

看 TypeScript Playground

推荐问题