w javascript, jeśli chcę pętli słownika i ustawianie właściwości innego słownika, będę używać coś takiego:Typescript hasOwnProperty równoważne
for (let key in dict) {
if (obj.hasOwnProperty(key)) {
obj[key] = dict[key];
}
}
Jeśli obj
jest obiektem Maszynopis (instancja klasy) , czy jest sposób na wykonanie tej samej operacji?
Mam boczne pytanie na ten temat; w twoim przypadku zainicjujesz właściwość foo, która zapewni, że jest obecna w wygenerowanym kodzie js; chociaż jeśli właściwość nie jest zdefiniowana, to w ogóle nie jest częścią generowanego kodu. Czy wiesz, dlaczego tak jest? To mnie trochę zaskoczyło, gdy próbowałem używać hasOwnProperty na niektórych instancjach i otrzymałem fałszywy zwrot, chociaż spodziewałem się, że będzie obecny, ale nieokreślony. – dSebastien
Rozważmy, że niezdefiniowane właściwości, tj. Wszystkie właściwości zdefiniowane w maszynopisie "klasa A {prop1: ciąg, prop2: liczba}" nie będą wyliczane przez żaden z 'Object.keys' lub' this.hasOwnProperty (k) ', ponieważ autogen javascript nie ma wiedzy o tych właściwościach. – loretoparisi
Dlaczego polecasz 'Object.keys (obj) .forEach (k =>' over 'for()'? – Coo