簡體   English   中英

Typescript 拋出返回錯誤 function 類型

[英]Typescript throws error for return function type

我對 typescript 很陌生。 我正在嘗試輸入此模擬 function 並引發以下錯誤:

'() 類型的值 => { doc: { name: string; header:字符串; 正文:字符串; 類別:字符串; isFunction:boolean; isOperator:未定義; 支持的執行上下文:字符串[]; }; 錯誤:未定義; }' 與類型 'IQuickHelpDocs' 沒有共同的屬性。 你的意思是叫它嗎?ts(2560)

getHelpDocs.ts(27, 49):你的意思是調用這個表達式嗎?

export const getHelpDocs: IHelpDocs = () => ({
  doc: {
    name: 'demo',
    header: 'demo',
    body: 'Returns the demo value of <code>value</code>',
    category: 'Number',
    isFunction: true,
    isOperator: undefined,
    supportedExecutionContexts: ['calc', 'my'],
  },
  error: undefined,
})

類型.ts

export interface IHelpDocs {
  doc?: IDoc
  error?: IDocsError
}

不知道我錯過了什么。 如此迷茫。 請幫助。

您當前編寫的注釋說getHelpDocsIHelpDocs類型:

export const getHelpDocs: IHelpDocs = ...

相反,您可能想要傳達的是 function 不接受 arguments 並返回IHelpDocs

export const getHelpDocs: () => IHelpDocs = ...

這里可能令人困惑的是類型注釋。 對於函數,您可以按如下方式注釋返回類型:

export function getHelpDocs(): IHelpDocs { ... }

對於變量,您需要對整個 shebang 進行注釋,否則 Typescript 將不知道會期待 function — 也可能是您確實想要只有接口。

您告訴 TypeScript getHelpDocs應該是IHelpDocs的形狀,但事實並非如此。 這是一個返回 IHelpDocs 的IHelpDocs

我會將其更改為直接導出function

export function getHelpDocs(): IHelpDocs {
 return {  
    doc: {
    name: 'abs',
    header: '<code>abs(value)</code>',
    body: 'Returns the absolute value of <code>value</code>',
    category: 'Number',
    isFunction: true,
    isOperator: undefined,
    supportedExecutionContexts: ['calc', 'sql'],
  },
  error: undefined,
  };
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM