নকআউটের স্থির প্রকার পেতে আমি এই ছোট্ট ইন্টারফেসটি তৈরি করেছি:
interface ObservableNumber {
(newValue: number): void;
(): number;
subscribe: (callback: (newValue: number) => void) => void;
}
interface ObservableString {
(newValue: string): void;
(): string;
subscribe: (callback: (newValue: string) => void) => void;
}
interface ObservableBool {
(newValue: bool): void;
(): bool;
subscribe: (callback: (newValue: bool) => void) => void;
}
interface ObservableAny {
(newValue: any): void;
(): any;
subscribe: (callback: (newValue: any) => void) => void;
}
interface ObservableStringArray {
(newValue: string[]): void;
(): string[];
remove: (value: String) => void;
removeAll: () => void;
push: (value: string) => void;
indexOf: (value: string) => number;
}
interface ObservableAnyArray {
(newValue: any[]): void;
(): any[];
remove: (value: any) => void;
removeAll: () => void;
push: (value: any) => void;
}
interface Computed {
(): any;
}
interface Knockout {
observable: {
(value: number): ObservableNumber;
(value: string): ObservableString;
(value: bool): ObservableBool;
(value: any): ObservableAny;
};
observableArray: {
(value: string[]): ObservableStringArray;
(value: any[]): ObservableAnyArray;
};
computed: {
(func: () => any): Computed;
};
}
এটিকে "Knockout.d.ts" এ রাখুন এবং তারপরে এটি আপনার নিজের ফাইল থেকে রেফারেন্স করুন। আপনি দেখতে পাচ্ছেন, জেনেরিকগুলি (যা চশমা অনুসারে আসছে) থেকে এটি প্রচুর উপকৃত হবে।
আমি কেবল ko.observable () এর জন্য কয়েকটি ইন্টারফেস তৈরি করেছি, তবে একই প্যাটার্নে খুব সহজেই যুক্ত করা যেতে পারে ko.computes () এবং ko.observableArray ()। আপডেট: আমি সাবস্ক্রাইব () এবং স্বীকৃত () এবং পর্যবেক্ষণযোগ্য অ্যারে () এর উদাহরণগুলি যুক্ত করার জন্য স্বাক্ষরগুলি স্থির করেছি।
আপনার নিজের ফাইল থেকে ব্যবহার করতে, শীর্ষে এটি যুক্ত করুন:
/// <reference path="./Knockout.d.ts" />
declare var ko: Knockout;