【发布时间】:2018-07-17 04:14:26
【问题描述】:
我正在尝试有条件地返回 KML 或 GeoJSON(分别是字符串和对象类型),我想知道如何通过 Object 方法上的接口分配这样的函数。
说对象是
const api = {
getGeometry(url, format) {
return fetch(`${url}?format=${format}`)
}
}
使用这样的界面:
interface GeometryRequest {
(url: string, format: 'kml'): Promise<string>
(url: string, format: 'geojson'): Promise<GeoJSON.FeatureCollection<any>>
}
所以我可以让它作为一个普通函数工作:
const geometryRequest: GeometryRequest = (url, format) => {
return fetch(`${url}?format=${format}`)
}
我只是想知道如何以类似的方式将类型分配给对象方法。
我尝试了以下几种方法:
getGeometry<GeometryRequest>
getGeometry: GeometryRequest
语法都不正确。
我还在TypeScript Playground 上添加了相同问题的更简单版本。在操场上output 的类型是:const output: string | number。但它应该能够以某种方式从接口中的重载函数中分辨出类型。
任何有关此语法问题的帮助将不胜感激! :)
【问题讨论】:
-
您确定游乐场链接是正确的吗?我也不清楚你想要完成什么。你能发布一个具体不起作用的片段吗?
-
射击,我抓住了错误的 URL 并丢失了它@TitianCernicova-Dragomir
-
已修复。 @TitianCernicova-Dragomir 谢谢 :)
标签: typescript