TypeScript'te 've diğerleri' demenin bir yolu var mı?


TypeScript'te değişken türünü tanımlamayı düşünün:

userData: {id: number, name: string};

Başka herhangi bir anahtarın herhangi bir tür ile de izin verilmesini sağlayacak bir yol var mı, böylece doğrulanmazlar? Şöyle bir şey:

userData: {id: number, name: string, ...any};

Yoksa belki modern tür dönüşüm operatörlerini mi kullanmalıyız?

Her türlü tavsiyeye değer veririm.

Cevap #1

[anahtar: string] kullan:

userData: {
  id: number
  name: string
  [key: string]: any;
};

@GrégoryNEUT haklı, herhangi biri önerilmez. bilinmiyor iyi bir yoldur ve birleşimler de mümkündür, örneğin string | numarası. anahtar ayrıca, örneğin sayı olarak da yazılabilir.

Cevap #2

@pzaenger'in doğru cevabına ek olarak, bir şeyi belirtmek için any kullanmanın kötü bir davranış olduğunu ekleyeceğim.

any sadece TypeScript'in bu örnekte olduğu gibi doğru olan bir şeyi kabul etmesini zorlamak istediğiniz çok özel durumlarda kullanılmalıdır

unknown kullanmalısınız; bu, kullanıcının kullanmadan önce ek verileri kontrol etmesini zorlayacaktır

userData: {
  id: number;
  name: string;

  [key: string]: unknown;
};