У меня есть следующие коды, чтобы помочь мне объяснить, что у меня проблемы с концепцией развязки.
например;
async getSomething(id: number): Promise<boolean> {
if(id === "111") {
return true;
}
else {
return false;
}
}
someFunc(): void {
let id="123";
if (getSomething(id)) {
console.log("do somthing special");
}
else {
console.log("sleep");
}
}
из этого ответа на другой вопрос развязки
Мы используем интерфейс для разделения двух методов, но у меня возникают проблемы с отображением взаимодействия между этими двумя методами независимо друг от друга.
Например;
export namespace Special {
export interface MagicDay {
isMagic: boolean;
}
}
...
async getSomething(id: number): Promise<Special.MagicDay> {
if(id === "111") {
// here what I think is different from before
// we create an object which we store our boolean
// so in some future we can the way we implement this function
// it is ok because we still have the **isMagic** that **someFunc** needs
return {isMagic: true};
}
else {
return {isMagic: false};
}
}
someFunc(): void {
let id="123";
let someDay = getSomething(id);
// different is now
// we receive an object
// so what happens in the backend we don't need to worry about it
// as long as we have the **isMagic** returns here
// but what makes this decoupling which we still need the value from
// get something
if (someDay.isMagic) {
console.log("do somthing special");
}
else {
console.log("sleep");
}
}
Я комментирую то, что думаю внутри кода * выше, где, как мне кажется, у меня больше всего проблем.
Я прочитал эту статью о том, почему мы должны использовать разделение , и я понимаю, почему, но когда дело доходит до реализации, меня беспокоит идея, потому что я продолжаю думать, как работает разделениесделать одного независимым от других, но нам все еще нужен вклад, чтобы заставить его работать?
спасибо заранее.