Skip to main content

[掘竅] TypeScript

忽略掉 TS 的錯誤#

// @ts-expect-error
// 意思是我認爲這裡 ts 應該會覺得有錯,而我要把它忽略
// 當 ts 發現下面這行並沒有檢查到錯誤時,會跳出提示
// @ts-ignore
// 意思是不管這裡有沒有錯,ts 都不要理他

ignore-ts-error

...args: never[] 的意思#

Understanding (...args: never[]) => ... in TypeScript Handbook @ reddit

白話翻譯指的是能夠接收任何型別作為參數的函式(沒有帶參數也可以)。

handle modules without type definition#

Using a JavaScript library (without type declarations) in a TypeScript project. @ medium

處理問題:Cannot find module '@mono-sandbox/a' or its corresponding type declarations.

Cannot find module

定義一支 foobar.d.ts,在裡面宣告該 package:

// ./misc.d.ts
declare module '@mono-sandbox/a';
declare module '@mono-sandbox/b';

接著在 tsconfig.json,記得要在 include 中包含到這支檔案:

// tsconfig.json
{
"include": ["src", "misc.d.ts"]
}

Array.prototype.map#

map<T> 後放入的 T 表示的是 map 回傳後 item 的型別:

// https://tsplay.dev/mxor7N
const data = [
{ firstName: 'Aaron', lastName: 'Chen' },
{ firstName: 'PJ', lastName: 'Chen' },
];
type Name = string;
const result = data.map<Name>((item) => {
return `${item.firstName} ${item.lastName}`;
});
console.log(result);
Last updated on