Почему ts не ругается на отсутствие аргумента?

Что-то не так с конфигом? Функция по факту не имеет аргументов, но при этом нет никакой ошибки. Сам TS перезапускал несколько раз. При этом все остальное работает правильно, если возвращать неверный тип например, появляется соответствующая ошибка. Раньше с таким не сталкивался

6479dbd06d8a7584937941.png

type F = (a: string) => boolean

function f() {
    return true
}

function test(f: F) {

}

test(f)


tsconfig.json
{
    "compilerOptions": {
        "target": "es5",
        "lib": [
            "es6"
        ],
        "jsx": "react",
        "module": "commonjs",
        "rootDir": "src",
        "baseUrl": "./",
        "paths": {
            "@/*": [
                "./src/*"
            ]
        },
        "typeRoots": [
            "src/types",
            "node_modules/@types"
        ],
        "resolveJsonModule": true,
        "allowJs": true,
        "outDir": "build",
        "esModuleInterop": true,
        "forceConsistentCasingInFileNames": true,
        "strict": true,
        "noImplicitAny": true,
        "skipLibCheck": true
    },
    "include": [
        "src/**/*.js",
        "src/**/*.ts",
        "src/**/*.json",
        "src/**/*.tsx"
    ]
}
  • Вопрос задан
  • 182 просмотра
Решения вопроса 1
MrDecoy
@MrDecoy
Верставший фронтендер
Что-то не понятное, давайте по порядку:
- На первом скрине Вы вроде как объявили тип, но потом задали не соответствующее типу "значение". То есть в типе должен быть аргумент, в аргументах функции нет аргумента. Ошибки нет, но выглядит странно.
- На втором скрине Вы указали в типе что возвращаете boolean, но возвращаете строку. Вот тут ошибка и ругается именно на это.

Если оставить первый вариант и просто ниже написать test() то должен ругаться что не хватает аргументя для 'a'.

P.s. а ещё у вас уже 63 вопроса. Пора бы начать соблюдать правила и писать код в вопрос не только картинками.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы