void 和 undefined 有什麼區別?
什麼是 never 型別?
下面程式碼會不會報錯?怎麼解決?
const obj = {
a: 1,
b: `string`,
};
obj.c = null;
readonly 和 const 有什麼區別?
下面程式碼中,foo 的型別應該如何宣告
function foo (a: number) {
return a + 1;
}
foo.bar = 123;
下面程式碼中,foo 的型別如何宣告
let foo = {};
for (let i = 0; i< 100; i++) {
foo[String(i)] = i;
}
實現 MyInterface
interface MyInterface {
...
}
class Bar implements MyInterface {
constructor(public name: string) {}
}
class Foo implements MyInterface {
constructor(public name: string) {}
}
function myfn(Klass: MyInterface, name: string) {
return new Klass(name);
}
myfn(Bar);
myfn(Foo);
什麼是 Abstract Class?
什麼是 class mixin, 如何實現?
typeof 關鍵詞有什麼用?
keyof 關鍵詞有什麼用?
下面程式碼中,foo 的型別如何宣告
function fn(value: number): string {
return String(value);
}
const foo = fn;
下面程式碼會導致 TS 編譯失敗,如何修改 getValue 的型別宣告。
function getValue() {
return this.value;
}
getValue();
下面是 vue-class-component 的部分程式碼,解釋為什麼會有多個 Component 函式的宣告,作用是什麼?TS 官方文件的那一節有對應的解釋文件?
function Component <U extends Vue>(options: ComponentOptions<U>): <V extends VueClass>(target: V) => V
function Component <V extends VueClass>(target: V): V
function Component <V extends VueClass, U extends Vue>(
options: ComponentOptions<U> | V
): any {
if (typeof options === `function`) {
return componentFactory(options)
}
return function (Component: V) {
return componentFactory(Component, options)
}
}
如何宣告 foo 的型別?
const foo = new Map();
foo.set(`bar`, 1);
如何宣告 getProperty,以便能檢查出第八行將會出現的執行錯誤。
function getProperty(obj, key) {
return obj[key].toString();
}
let x = { a: 1, b: 2, c: 3, d: 4 };
getProperty(x, "a");
getProperty(x, "m");
型別宣告裡 「&」和「|」有什麼作用?
下面程式碼裡「date is Date」有什麼作用?
function isDate(date: any): date is Date {
if (!date) return false;
return Object.prototype.toString.call(date) === `[object Date]`;
}
tsconfig.json 裡 –strictNullChecks 引數的作用是什麼?
interface 和 type 宣告有什麼區別?
如何完善 Calculator 的宣告。
interface Calculator {
...
}
let calcu: Calculator;
calcu(2)
.multiply(5)
.add(1)
「import … from」、「 import … = require()」 和 「import(path: string)」有什麼區別?
declare 關鍵字有什麼用?
module 關鍵字有什麼用?
如何處理才能在 TS 中引用 CSS 或者 圖片使之不報錯?
import "./index.scss";
import imgPath from "./home.png";
編寫 d.ts 來宣告下面的 js 檔案
class Foo {
}
module.exports = Foo;
module.exports.Bar = 1;
namespace 和 module 有什麼區別
如何實現 module alias?編譯成 JS 能否直接執行?
import Bar from `@src/Bar`;
哪些宣告型別既可以當做 type 也可以當做 value?