Когда я запускаю tsc -p .
в вашем корневом каталоге и проверяю вывод, я обнаруживаю, что tsc компилирует это:
const data = useStaticQuery(graphql`
query IndexQuery {
site {
siteMetadata {
title
}
}
}
`);
в следующее:
var data = useStaticQuery(graphql(templateObject_1 || (templateObject_1 = tslib_1.__makeTemplateObject(["\n query IndexQuery {\n site {\n siteMetadata {\n title\n }\n }\n }\n "], ["\n query IndexQuery {\n site {\n siteMetadata {\n title\n }\n }\n }\n "]))));
Гэтсби ожидает graphql
запрашивает, чтобы быть в литерале шаблона, но tsc компилирует их в обычные функции.
Чтобы исправить это, вам нужно изменить tsconfig
, чтобы вывести как минимум es6
.
// tsconfig.json
{
compileOptions: {
"module": "esnext",
"target": "esnext", <-- or es6 & above
}
}
Кстати, я недавно опубликовал плагин ts для gatsby, цель которого сделать использование gatsby в машинописи как можно более плавным.Еще одна вещь, которую он делает, это автоматически генерирует типизацию для запросов graphql.Буду признателен, если вы попробуете и сообщите мне, если возникнут какие-либо проблемы: