node.js - Typescript'e Blob'u nasıl eklerim?
FileSaver ile bir dosya kaydetmeye çalışıyorum, bu da sonuç olarak bir Blob formatına ihtiyaç duyuyor. Uygulamam TypeScript ile yazılıyor.
Yapmayı denediğimde
import * as Blob from "blob";
Hata aldım
Could not find a declaration file for module 'blob'. '/Users/path/to/project/node_modules/blob/index.js' implicitly has an 'any' type.
Try \npm install @types/blob` if it exists or add a new declaration (.d.ts) file containing `declare module 'blob';``
Sadece 'blob'u içe aktaramam çünkü @types/blob paketi mevcut değil.
Bu içeriğe sahip blob.d.ts adında bir beyan dosyası oluşturdum
declare module 'blob' {
function Blob(blobParts[, options]): any
export = Blob
}
Blob yapıcısı üzerine MDN girişine dayanarak
Bu, Blob'a ihtiyacım olan tek satır kod için sorunumuzu çözmedi
var blob = new Blob(["Hello, world!"], {type: "text/plain;charset=utf-8"});
aşağıdaki hatayı döndürdü
Argument of type '{ type: string; }' is not assignable to parameter of type '[any, any]'. Object literal may only specify known properties, and 'type' does not exist in type '[any, any]'.
Bu benzer soru bir kopya DEĞİLDİR ve cevabı bana yardımcı olmuyor çünkü o deklarasyon dosyası herhangi bir modül beyan etmiyor ve hiçbir şey ihraç etmiyor.
Cevap #1
tsconfig.json dosyanızda, lib dizininde webworker dahil ettiğinizden emin olun:
{
"compilerOptions": {
...
"lib": ["webworker"],
...
},
...
}
Yukarıda verilen referans bağlantılarından zaten açıkça anlaşılması gerekse de, lib.webworker.d.ts, Blob ve ilgili arayüzler için gerekli bildirimleri içermektedir.
interface Blob {
readonly size: number;
readonly type: string;
slice(start?: number, end?: number, contentType?: string): Blob;
}
declare var Blob: {
prototype: Blob;
new(blobParts?: BlobPart[], options?: BlobPropertyBag): Blob;
};
