
1.省略类型是什么?
答 :这是一种新类型,您可以在其中指定将从原始类型中排除的属性。
一个例子 :
type Person = { name: string; age: number; location: string; }; type QuantumPerson = Omit<Person, 'location'>;
2.什么时候应该使用关键字“ declare”?
答 :当使用在TypeScript项目中未声明的JavaScript库时。
一个例子 :
declare const libraryName;
3.如何自动获取声明文件?
答 :在tsconfig.json文件中将编译器选项设置为true
一个例子 :
{ "compilerOptions": { ... "declaration": true, } }
4.如何重载功能?
答 :您必须在原始函数上使用相同的函数名称,且不使用方括号{},并更改参数的数量和类型和/或返回值的类型。
一个例子 :
function add(x: string, y: string): string; function add(x: number, y: number): number { return x + y; }
5.如何使所有接口属性为可选?
答案 :使用部分类型
一个例子 :
interface Person { name: string; age: number; } type PartialPerson = Partial<Person>;
6.装饰器可以应用于什么?
答 :类,属性,方法和方法参数。
一个例子 :
@MyClassDecorator export class Person { … @MyPropertyDecorator myProperty: string; }
7.什么是“记录”类型?
答 :它允许您创建类型化地图。
一个例子 :
let Person = Record<string, number> = {}; Person.age = 25;
8.如何访问在定义它们的模块之外的类?
答 :在类名之前使用export关键字。
一个例子 :
export class Person {}
9.什么时候使用“未知”关键字?
回答 :当您不想使用any关键字和/或不事先知道确切的类型,而是想在以后分配它时。
一个例子 :
let person: unknown = 'John'; if (typeof person === string) { let name: string = person; }
10.什么是“ .map”文件,如何以及为什么使用它?
答 : 映射文件是可在调试时使用的源映射文件。 可以通过在tsconfig.json文件中将sourceMap编译器选项设置为true来生成它
一个例子 :
{ "compilerOptions": { ... "sourceMap": true, } }