Свойства объекта почты Office.js отсутствуют в TypeScript - PullRequest
0 голосов
/ 25 мая 2018

У меня есть проект веб-надстройки Outlook, основанный на скаффолдинге React и TypeScript, сгенерированном Генератором надстроек Yeoman Office.Однако в intellisense (я использую Webstorm), по-видимому, отсутствуют почти все свойства и методы объекта Office.context.mailbox.item.например, только body и dateTimeCreated, даже не тема и не куча других!

Я не уверен, что это проблема с файлами, сгенерированными Yeoman, или что-то еще (я очень новичок в React),Ниже приведен скриншот доступных реквизитов и сгенерированного файла index.tsx;Я пытаюсь получить доступ к свойствам элемента почты в функции Office.initialize.

enter image description here

import * as React from 'react';
import * as ReactDOM from 'react-dom';
import { AppContainer } from 'react-hot-loader';
import { initializeIcons } from 'office-ui-fabric-react/lib/Icons';

import App from './components/App';

import './styles.less';
import 'office-ui-fabric-react/dist/css/fabric.min.css';

initializeIcons();

let isOfficeInitialized = false;

const title = 'My Outlook React Add-in';

const render = (Component) => {
    ReactDOM.render(
        <AppContainer>
            <Component title={title} isOfficeInitialized={isOfficeInitialized} />
        </AppContainer>,
        document.getElementById('container')
    );
};

/* Render application after Office initializes */
Office.initialize = () => {
    isOfficeInitialized = true;
	let item = Office.context.mailbox.item;
    emailSubject = item.???
    render(App);
};

/* Initial render showing a progress bar */
render(App);

if ((module as any).hot) {
    (module as any).hot.accept('./components/App', () => {
        const NextApp = require('./components/App').default;
        render(NextApp);
    });
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>

1 Ответ

0 голосов

Как это случилось, я вчера обсуждал с коллегой вопрос о том, как сделать файл d.ts лучше для Outlook.

Я только что отправил запрос на получение доступа к DefinitiveTyped (который также выдает @пакет types / office-js): https://github.com/DefinitelyTyped/DefinitelyTyped/pull/26016. Скоро будет объединено.

Если вы хотите, тем временем вы можете просто скопировать полученный файл d.ts и использовать его.Фактически, если ваш проект имеет node_modules/@types/office-js (я полагаю, что он есть?), Вы можете просто временно обновить его вручную в локальной файловой системе, скопировав его отсюда (из запроса на извлечение): https://raw.githubusercontent.com/Zlatkovsky/DefinitelyTyped/235072eab26a40527778755dd477cce3bcc494ae/types/office-js/index.d.ts

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...