Я изучаю некоторые машинописи с нуля. Вот какой код с официального сайта. Я смущен одной строкой внизу. Что означает это заявление? {} после символа равенства означает, что тип возврата недействителен?Что означает эта строка машинописного текста?
var validators: { [s: string]: Validation.StringValidator; } = {};
/////////////////////////////////////////// //////////////////////////////////////////////
module Validation {
export interface StringValidator {
isAcceptable(s: string): boolean;
}
var lettersRegexp = /^[A-Za-z]+$/;
var numberRegexp = /^[0-9]+$/;
export class LettersOnlyValidator implements StringValidator {
isAcceptable(s: string) {
return lettersRegexp.test(s);
}
}
export class ZipCodeValidator implements StringValidator {
isAcceptable(s: string) {
return s.length === 5 && numberRegexp.test(s);
}
}
}
// Some samples to try
var strings = ['Hello', '98052', '101'];
// Validators to use
var validators: { [s: string]: Validation.StringValidator; } = {};
validators['ZIP code'] = new Validation.ZipCodeValidator();
validators['Letters only'] = new Validation.LettersOnlyValidator();
// Show whether each string passed each validator
strings.forEach(s => {
for (var name in validators) {
console.log('"' + s + '" ' + (validators[name].isAcceptable(s) ? ' matches ' : ' does not match ') + name);
}
});
Спасибо! Я понимаю первый и третий пункты. Во втором пункте вы упомянули хэш; могу ли я сказать, что он объявляет что-то вроде словаря со строкой в качестве ключа? Поправьте меня если я ошибаюсь. – catlovespurple
Да. Это словарь со строковым ключом и значением типа 'Validation.StringValidator'. – meagar
Отлично! Спасибо за подтверждение! Я дам вам кредит !!! – catlovespurple