Javascript 如何为lambda内部的局部变量创建类型定义?
所以我决定将专有方法添加到类的实例中,但这扼杀了我的类型信息。以下是我要说的:Javascript 如何为lambda内部的局部变量创建类型定义?,javascript,typescript,visual-studio,uwp,Javascript,Typescript,Visual Studio,Uwp,所以我决定将专有方法添加到类的实例中,但这扼杀了我的类型信息。以下是我要说的: window.onload = async () => { let picker = new Windows.Storage.Pickers.FolderPicker() picker.fileTypeFilter.append("*") let files = await (await picker.pickSingleFolderAsync()).getFilesAsync(),
window.onload = async () => {
let picker = new Windows.Storage.Pickers.FolderPicker()
picker.fileTypeFilter.append("*")
let files = await (await picker.pickSingleFolderAsync()).getFilesAsync(),
file = files.filter(value => value.fileType == ".RMX").pop(),
zonefiles = files.filter(value => value.fileType.startsWith(".Z"))
console.log(file.name)
console.log(zonefiles)
const openedfile = await file.openAsync(Windows.Storage.FileAccessMode.Read)
openedfile.createreaderat = at => {
const reader = new Windows.Storage.Streams.DataReader(this.getInputStreamAt(at))
reader.byteOrder = Windows.Storage.Streams.ByteOrder.littleEndian
return reader
}
let datareader = openedfile.createreaderat(0) //gets type of any
}
我使用的是visual studio 2017社区版,我创建了一个UWP JS应用程序
您知道d.ts文件会是什么样子吗?这样可以缓解问题,并为我的datareader
提供适当的类型
我假设类似的东西应该可以工作,但它给了我语法错误:
window.onload = async () => {
const openedfile: { ...: Windows.Storage.Streams.RandomAccessStream,
createreaderat: (at: number) => Windows.Storage.Streams.DataReader}
}
试试这个
openedfile.createreaderat = at => <Windows.Storage.Streams.DataReader>({
const reader = new Windows.Storage.Streams.DataReader(this.getInputStreamAt(at));
reader.byteOrder = Windows.Storage.Streams.ByteOrder.littleEndian;
return reader;
});
openedfile.createreaderat=at=>({
const reader=new Windows.Storage.Streams.DataReader(this.getInputStreamAt(at));
reader.byteOrder=Windows.Storage.Streams.byteOrder.littleEndian;
返回读取器;
});
您需要'createreaderat'方法的类型,如果原始对象不是您的,则需要扩展该对象,并在d.ts文件中添加具有适当类型的新方法。但您不需要使用d.ts文件。您可以使用at=>{…}:Windows.Storage.Streams.DataReader
@jcubic如果可能的话,我想保留用js写的内容,但在附加文件d.ts
中添加类型。什么是Storage.Pickers.FolderPicker
?这是一个库吗?这个接口是在d.ts文件还是typescript类中?openedfile的类型是什么?它是否存在于.d.ts
文件中?如果有,你能把它添加到你的帖子里吗?(如果.d.ts
不是太大,最好发布所有相关的现有类型,FolderPicker
及其定义中使用的类型)。它是UWP。这两个标识符都存在于SDK附带的.d.ts文件中。我的意思是第二个openedfile
是从方法调用继承的。