什么是TypeScript

TypeScript是一个强类型的JavaScript超集,支持ES6语法,支持面向对象编程的概念,如类、接口、继承、泛型等。 TypeScript并不直接在浏览器上运行,需要编译器编译成纯JavaScript来运行

TypeScript相对于JavaScript的优势

增加了静态类型, 可以在开发人员编写脚本时检测错误,使得代码质量更好,更健壮

const 和 readonly的区别

const可以防止变量的值被修改,readyonly可以防止变量的属性被修改

const foo: {
  readonly bar: number;
} = {
  bar: 123
};
function isMutateFoo(foo: { bar: number }) {
  foo.bar = 456;
}
isMutateFoo(foo);
console.log(foo.bar);   // 456

any、never、unknown、null & undefind 和 void 区别

Typescript中的this和JavaScript中的this有什么差异

Typescript中使用Union Types时有哪些注意事项

属性或方法访问: 当TypeScript不确定一个联合类型的变量到底是哪个类型的时候,我们只能访问此联合类型的所有类型里共有的属性或方法。

function getString(something: string | number): string {
  return something.toString();    // 不能访问length
}

type和interface的区别

相同点:

使用interface 描述 数据结构, 使用type描述 类型关系

enum str { A, B, C}
type strUnion = keyof typeof str;   // 'A' | 'B' | 'C'