Visual Studio Code + Реакция-родной + машинописный текст: JSX IntelliSense не работает

Это довольно странно. Я использую код Visual Studio, установив реактивный-нативный с машинописным шрифтом (реагирующий-нативный + нативный базовый + машинопись). Хотя intellisense и проверка типов работают в целом, я сталкиваюсь с некоторыми проблемами с jsx intellisense, предложения по коду не отображаются ни для каких jsx-подпорок.

Я имею в виду, что обычно, когда вы записываете ctrl + пробел в элементе jsx, против кода отображаются доступные реквизиты.

Это не работает. В приведенном выше примере предложенные предложения не являются доступными опорами этого элемента jsx. <Content>, Следствием этого является то, что ошибки в листинге реквизита не фиксируются компилятором. Например этот код:

не помечается как ошибка, даже если prop foo не существует в определении компонента Content. Это не было определено ни где. Это первый раз, когда он появляется в коде. Тем не менее, компилятор не помечает это как ошибку.

Предполагается, что Typescript сделает javascript напечатанным и выберет ошибку времени компиляции.

Вот мой tsconfig.json:

{
    "compilerOptions": {
        "target": "es6",
        "allowJs": true,
        "jsx": "react",        
        "rootDir": "modules",
        "sourceMap": true,
        "noImplicitAny": false,     
    },    
    "filesGlob": [        
        "modules/**/*.ts",
        "modules/**/*.tsx",
        "typings/**/*.d.ts"
    ],    
    "exclude": [
        "node_modules"        
    ]
}

Кроме того, машинопись правильно установлена ​​в Visual Studio Code, как показано на панели задач:

Вы можете видеть, что Typescript с реагировать установлен. Кроме того, в моем файле TSX правильно указаны ссылки:

/// <reference path="../typings/index.d.ts" />

import * as React from 'react';
import { View, Text } from 'react-native';

Итак, как я могу получить машинопись, чтобы правильно предлагать реквизиты для элементов jsx с помощью ctrl + space и более серьезно, почему машинопись не обнаруживает ошибку, когда я использую реквизиты, не определенные для данного компонента? Это что-то с печатными текстами, которые я не получаю, или в tsconfig.json есть настройка?

Спасибо за вашу ценную помощь.

1 ответ

Решение

Для тех, у кого была похожая проблема, я решил свою собственную проблему, добавив типы в свой проект, используя npm @types (например, npm install @types/ реагировать) вместо набираемых или tds.

Другие вопросы по тегам