我很難理解為什么它不會應用我的可為空型別
這是一個例子
interface Book {
name: string;
author: string;
reference: string;
category: string;
}
async function handleFetch<T>(endpoint: string, params: object): Promise<T | null> {
const querystring = Object.entries(params)
.map(([key, value]) => `${key}=${value}`)
.join('&');
try {
const response = await fetch(`/api/${endpoint}?${querystring}`);
const data = await response.json();
if (response.ok) {
return data[0] || null;
}
return null;
} catch {
throw new Error('Internal error');
}
}
export default {
getBook: (reference: string) => {
return handleFetch<Book>('books', { reference });
},
};
我可以看到該方法回傳一個可為空的型別 
但是在匯出時它不再可以為空

我覺得我錯過了一些東西,但以前從未遇到過
謝謝
uj5u.com熱心網友回復:
這個我能想到的唯一原因將是對strictNullChecks編譯器選項是關閉的。這也包含在"strict"編譯器選項中
嘗試添加:
"strict": true,
或者:
"strictNullChecks": true,
到您的tsconfig.json檔案下"compilerOptions"。
在嚴格模式下,您的代碼似乎作業正常。請參閱此沙箱。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/409689.html
標籤:
上一篇:回傳聯合型別Promise<string|fs.WriteStream>不作業
下一篇:回傳非空陣列
