ウェブサイト検索

TypeScript - 抽象クラスの子であるオブジェクトの配列の構文は何ですか?

私はこのTypeScriptの継承階層を持っています。Personは基底の抽象クラスです。一方、ManクラスとWomanクラスは抽象Personクラスの子クラスです。抽象クラスPersonには、_childrenというプロパティがあり、これは抽象Personオブジェクトの配列です。私はWomanクラスとManクラスに子供の配列を追加する必要があります。しかし、Personオブジェクトは抽象クラスなので配列に追加できないと思います。その代わりに、子クラスであるManやWomanのオブジェクトを配列に追加する必要があります。この構文はどのようになるか教えていただけますか?つまり、ManとWomanオブジェクトを含めることができる配列が必要です。

これをしようとするとき:

private children: Person[] = [this.womanA, this.manB, this.womanD, this.manC]; private manD: Man = new Man(this.children, 'Lyngby');

続きを読む →

.filter() は TypeScript で配列の型に影響を与えますか?

このスニペットを確認してください:

interface Foo { id: string; } const fooFunc = (arr: Foo[]): Foo[] => arr .map((item: Foo): Foo | null => { const someCheck = true; if (someCheck) { return { id: '123' }; } return null; }) .filter((item: Foo | null) => item !== null);

またはこちらをクリックして、TS Playground のリンクにアクセスしてください: https://pnda.me/TSPlaygroundFilterExample

型 null は型 Foo

続きを読む →

typescript2.0 - TypeScript - 配列ではないオブジェクトの定義/インターフェース

私はJS/JSON.stringifyのこの機能について悩んでいます:

const v = []; v.foo = 5; v.start = true; console.log(JSON.stringify({value: v}));

これをコンソールで確認できます:

{"value":[]}

だから作りたい型は配列ではなくオブジェクトです:

export const acceptsObjectsButNotArrays =

続きを読む →

javascript - Angular 5で、特定の文字を入力した後にだけ、テキストエリアから配列内のユーザーを検索する

私は次のようなテキストエリアを持っています..

<textarea [(ngModel)]="message" id="commentBox" placeholder="Add your comment here..."></textarea>

そして、外部APIからユーザーを取り込むリストがあります、このように…

<div class="mention-container">

続きを読む →

TypeScript - 異なる型のアイテムの配列を持つにはどうすればよいですか?

以下のコードでは、私が望むのは、インターフェース内で定義された関数で使用されるのと同じ型を引数に持つことを強制するインターフェースを持つことです。これまでは簡単で、ジェネリック型を使ってそれを達成することができます:

interface Interface<T> { arg: T func: (_: T) => string }

私が次に望むのは、それらのインターフェースの配列を持つことができ、その間で異なる型を持つことができるようにすることです(ただし、1つのインターフェース内の引数と関数の間で同じ型を持つことは確保する)。ここにそのような引数を取る関数があります:

const mainFunc = <T>( items: Array<Interface<T>> ) => { items.forEach(({ func, arg }) => func(arg)) }

続きを読む →

TypeScript - Angular テンプレート構文で非同期配列を複数の変数に割り当てる

JSでは、次のように指定された配列から新しい変数に値を渡すエレガントな方法があります:

let [a, b, c] = [1, 2, 3]; // a = 1, b = 2, c = 3

AngularのHTML構文を使って、同じようにエレガントな方法を実現できるかどうか考えていました。例えば次のように:

// TS this.obs1$: Observable<ObsType1> = ...; this.obs2$: Observable<ObsType2&

続きを読む →

typescript - AngularのHTMLテンプレートで複数のオブジェクト型の配列のオブジェクトメンバーをどのように扱うか?

私は2つのクラス FileInfo と UploadFileInfo を持っています。後者は前者を拡張しています。私のメソッドでは、オブジェクトを配列 contents に追加しますが、どちらの型でも可能です。

public contents: Array<FileInfo | UploadFileInfo> = new Array<FileInfo | UploadFileInfo>();

そして私のHTMLテンプレートでは、ngForを使ってコンテンツを繰り返し処理します。

私の問題は、HTMLテンプレートで型チェックを実行できず、UploadFileInfo のメンバーが anonymous であることに関してエラーが出ていることです。どうやら、このテンプレートは最初の FileInfo を参照型とし

続きを読む →

TypeScript - 非同期データをオブジェクトの配列として子コンポーネントに渡す方法 - Angular 6

サーバーから取得しているオブジェクトの配列を子コンポーネントに渡そうとしていますが、なぜうまくいかないのか理解できません。ここで何を見落としているのでしょうか?

親コンポーネント TS

private movieListSub: Subscription; private movies: UserMovie[] = []; constructor( private movieService: UserMovieService) { } ngOnInit() {

続きを読む →

TypeScript - 再帰的なネスト配列型: 可能ですか?

私は TypeScript 3.0.3 を使用しており、これは期待通りに動作します:

interface IndefiniteNestedArray<T> extends Array<T | IndefiniteNestedArray<T>> {} let arr: IndefiniteNestedArray<string> = [ [ [ [9001] ] ] ]; // 4 levels // // type 'number[][][][]' is not assignable to type 'IndefiniteNestedArray<string>'. //

しかしなぜか、一次元深くネストすると、明らかにそうでないはずなのに型エラーが消えます…

interface IndefiniteNestedArray<T> extends Array<T | IndefiniteNestedArray<T&g

続きを読む →

TypeScript - Cheerioオブジェクトを「ネイティブ」オブジェクトの配列にマッピングする

私は次のHTMLを持っています(異なるデータで数回繰り返されています)、これはcheerioを使って読み込んだドキュメント内にあります:

<li class="wprm-recipe-ingredient"> <span class="wprm-recipe-ingredient-amount">1</span> <span class="wprm-recipe-ingredient-unit">pound</span> <span class="wprm-recipe-ingredient-n

続きを読む →