我想使用TypeScript
创建一个字典,并在同一行初始化它,而不是先创建,然后填充值,如下所示
var persons: { [id: string] : IPerson; } = {};
persons["p1"] = { firstName: "F1", lastname: "L1" };
如何将上述内容合并为一个?
答案 0 :(得分:6)
只需创建一个对象。 ECMAScripts中的对象是关联数组。
以下是您作为对象的示例:
app.controller('CreatePollController', function($scope) {
// functions
function runAfterRender (callback) {
setTimeout(function () {
if (angular.isFunction(callback)) {
callback();
}
}, 0);
}
// $scope
$scope.questions = [];
$scope.init = function(numOfInputs){
for(var i = 0; i < numOfInputs; i++){
$scope.questions.push({
"questionText":""
});
}
};
$scope.addQuestion = function(){
$scope.questions.push({
"questionText":""
});
};
$scope.createInputKeypress = function(e){
if(e.keyCode === 13){
e.preventDefault();
var idx = Number(e.target.id.replace("q_", ""));
if(idx === this.questions.length - 1){
this.addQuestion();
}
runAfterRender(function () {
var nextId = "#q_" + (++idx);
$(nextId).focus();
});
}
};
});
最好使用const persons: { [id: string] : IPerson; } = {
p1: { firstName: "F1", lastname: "L1" }
};
或const
代替let
。