class Thing extends ((function () {
return null;
})()) {
doThing() {
}
}
Ini benar-benar cara memutar untuk mengatakan extends null
, tetapi tipenya tidak keluar, yang canggung. Anda harus membubuhi keterangan pada IIFE dengan tipe dummy ctor seperti StringConstructor
untuk memuaskan pemeriksa.
Ini adalah dengan desain. satu-satunya bentuk perluasan null yang didukung adalah extends null
apa pun, harus mengembalikan nilai yang tipenya memiliki tanda tangan konstruk. Kami telah mengecualikan apa pun sebagai wildcard dalam skenario ini, hanya karena kemungkinan besar kesalahan pengguna di sini daripada yang dimaksudkan. akan menarik untuk melihat apakah ada kasus penggunaan aktual di mana ini akan dibutuhkan.
Ini kasus yang menarik, di TypeScript 2.0 saya mendeklarasikan modul swagger-client seperti: declare module 'swagger-client';
. Namun, ketika saya mencoba menggunakannya seperti:
import * as Swagger from 'swagger-client';
class Swagger extends Swagger {
pet: any;
constructor() {
super({
url: config.get('spec.petstore'),
usePromise: true
});
}
}
Saya mendapatkan kesalahan Type 'any' is not a constructor function type
.
Saya mendapatkan kesalahan ini ketika saya mengimpor dari file indeks seperti:
impor {Berasal, Basis} dari '.'
dan kelas turunan terdaftar di index.ts sebelum kelas dasar:
ekspor {Berasal} dari './Berasal';
ekspor {Base} dari './Base';
Saya mengganti pesanan dan berhasil.
Komentar yang paling membantu
Ini kasus yang menarik, di TypeScript 2.0 saya mendeklarasikan modul swagger-client seperti:
declare module 'swagger-client';
. Namun, ketika saya mencoba menggunakannya seperti:Saya mendapatkan kesalahan
Type 'any' is not a constructor function type
.