Код в разделе 2 ниже (рабочий пример здесь) основан на коде в разделе 1, но изменен на использование функций стрелок, и он основан на шаблоне Майка Бостока в " На пути к восстанавливаемым диаграммам", а именно, возвращает функцию, которая имеет другие функции на ней.
Если я попытаюсь запустить либо код в разделе 1 или 2 в машинописном тексте (здесь здесь), он говорит, что методы addToChart
и stop
не существуют в типе (selection: any) =>() => void
.
Как я могу получить машинописный текст для распознавания свойств функций (addToChart
и stop
в этом случае), добавленных к возвращенной функции?
секция 1
const mychart = function (){
let stop = false;
const chart = function(selection){
function tick(){
console.log("tick");
}
return tick;
};
// Adding a function to the returned
// function as in Bostock reusable chart pattern
chart.addToChart = function(value){
console.log("addToChart");
return chart;
};
chart.stop = function(){
return stop = true;
}
return chart;
}
const a = mychart();
const tick = a();
tick(); //logs tick
a.addToChart(); //logs "addToChart"
раздел 2
const mychart = () => {
let stop = false;
const chart = (selection) => {
function tick(){
console.log("tick");
}
return tick;
};
chart.addToChart = (value) => {
console.log("addToChart");
return chart;
};
chart.stop = () => {
return stop = true;
}
return chart;
}
const a = mychart();
const tick = a();
tick(); //logs tick
a.addToChart(); //logs "addToChart"