10个常见的TypeScript面试问题(简短答案)


1.省略类型是什么?


:这是一种新类型,您可以在其中指定将从原始类型中排除的属性。


一个例子


type Person = { name: string; age: number; location: string; }; type QuantumPerson = Omit<Person, 'location'>; //    QuantumPerson = { name: string; age: number; }; 

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>; //    linesinterface PartialPerson { name?: string; age?: number; } 

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, } } 

Source: https://habr.com/ru/post/zh-CN484546/


All Articles